"""
# -*- coding: utf-8 -*-
# @Time    : 2023/5/10 15:56
# @Author  : 王摇摆
# @FileName: KNNregression.py
# @Software: PyCharm
# @Blog    ：https://blog.csdn.net/weixin_44943389?type=blog
"""
# 导入画图工具
import matplotlib.pyplot as plt
# 导入数组工具
import numpy as np

# 导入用于回归分析的KNN模型
from sklearn.neighbors import KNeighborsRegressor
# 导入数据集拆分工具
from sklearn.model_selection import train_test_split
# 导入数据集生成器
from sklearn.datasets._samples_generator import make_regression
# from docutils.utils.math.math2html import LineWriter

# 生成样本数为200，分类数为2的数据集
X, Y = make_regression(n_samples=100, n_features=1, n_informative=1, noise=50, random_state=8)

# 将生成的数据集进行可视化
# plt.scatter(X,Y,s=80, c='orange',  cmap=plt.cm.spring, edgecolors='k') # 只是画点而已
# plt.show()

reg = KNeighborsRegressor(n_neighbors=5) #实例化KNN回归分类器，并进行训练
reg.fit(X, Y)

# 将预测结果用图像进行可视化
z = np.linspace(-3, 3, 200).reshape(-1, 1)
plt.scatter(X, Y, c='orange', edgecolor='k')
plt.plot(z, reg.predict(z), c='k', Linewidth=3)
#
plt.title("KNN Regressor")

plt.show()
